package com.uls.hj.domain;

import java.util.Date;
import java.util.List;
import java.util.Objects;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.uls.hj.vo.TaskCommentVo;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.uls.common.annotation.Excel;
import com.uls.common.core.domain.BaseEntity;

/**
 * 预订对象 hj_bookings
 * 
 * @author hj
 * @date 2024-11-09
 */
public class HjBookings extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键id */
    private Long bookingId;

    /** 场馆id */
    @Excel(name = "场馆id")
    private Long venueId;

    /** 用户id */
    @Excel(name = "用户id")
    private Long userId;

    /** 预订日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "预订日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date bookingDate;

    /** 预定时段 */
    @Excel(name = "预定时段")
    private String bookingTime;

    /** 预订状态(0-待提交、1-审核中、2-已打回、3-已通过) */
    @Excel(name = "预订状态(0-待提交、1-审核中、2-已打回、3-已通过)")
    private Long bookingStatus;

    /** 删除标记（0-未删，1-已删） */
    private Integer delFlag;



    /**流程id**/
    private Long flowInstantId;

    public Long getFlowInstantId() {
        return flowInstantId;
    }

    public void setFlowInstantId(Long flowInstantId) {
        this.flowInstantId = flowInstantId;
    }



    public void setBookingId(Long bookingId) 
    {
        this.bookingId = bookingId;
    }

    public Long getBookingId() 
    {
        return bookingId;
    }
    public void setVenueId(Long venueId) 
    {
        this.venueId = venueId;
    }

    public Long getVenueId() 
    {
        return venueId;
    }
    public void setUserId(Long userId) 
    {
        this.userId = userId;
    }

    public Long getUserId() 
    {
        return userId;
    }
    public void setBookingDate(Date bookingDate) 
    {
        this.bookingDate = bookingDate;
    }

    public Date getBookingDate() 
    {
        return bookingDate;
    }
    public void setBookingTime(String bookingTime)
    {
        this.bookingTime = bookingTime;
    }

    public String getBookingTime()
    {
        return bookingTime;
    }
    public void setBookingStatus(Long bookingStatus) 
    {
        this.bookingStatus = bookingStatus;
    }

    public Long getBookingStatus() 
    {
        return bookingStatus;
    }
    public void setDelFlag(Integer delFlag) 
    {
        this.delFlag = delFlag;
    }

    public Integer getDelFlag() 
    {
        return delFlag;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("bookingId", getBookingId())
            .append("venueId", getVenueId())
            .append("userId", getUserId())
            .append("bookingDate", getBookingDate())
            .append("bookingTime", getBookingTime())
            .append("bookingStatus", getBookingStatus())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("delFlag", getDelFlag())
            .toString();
    }

    /** 场馆名称 */
    @Excel(name = "场馆名称")
    private String venueName;

    public String getVenueName() {
        return venueName;
    }

    public void setVenueName(String venueName) {
        this.venueName = venueName;
    }

    /** 预约人 */
    private String bookingBy;

    /** 预约人账户 */
    private String bookingAccount;

    /** 预约人电话 */
    private String phonenumber;

    //是否同意vo
    private Integer agree;

    //批注vo
    private String comment;

    //审批过程数据列表vo
    private List<TaskCommentVo> taskCommentVoList;

    public String getBookingBy() {
        return bookingBy;
    }

    public void setBookingBy(String bookingBy) {
        this.bookingBy = bookingBy;
    }

    public String getBookingAccount() {
        return bookingAccount;
    }

    public void setBookingAccount(String bookingAccount) {
        this.bookingAccount = bookingAccount;
    }

    public String getPhonenumber() {
        return phonenumber;
    }

    public void setPhonenumber(String phonenumber) {
        this.phonenumber = phonenumber;
    }

    public Integer getAgree() {
        return agree;
    }

    public void setAgree(Integer agree) {
        this.agree = agree;
    }

    public String getComment() {
        return comment;
    }

    public void setComment(String comment) {
        this.comment = comment;
    }

    public List<TaskCommentVo> getTaskCommentVoList() {
        return taskCommentVoList;
    }

    public void setTaskCommentVoList(List<TaskCommentVo> taskCommentVoList) {
        this.taskCommentVoList = taskCommentVoList;
    }

    @Override
    public boolean equals(Object o){
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        HjBookings bookings = (HjBookings) o;
        return Objects.equals(bookingId, bookings.bookingId)&&
                Objects.equals(venueId, bookings.venueId)&&
                Objects.equals(userId, bookings.userId)&&
                Objects.equals(bookingDate, bookings.bookingDate)&&
                Objects.equals(bookingTime, bookings.bookingTime)&&
                Objects.equals(bookingStatus, bookings.bookingStatus)&&
                Objects.equals(delFlag, bookings.delFlag)&&
                Objects.equals(flowInstantId, bookings.flowInstantId)&&
                Objects.equals(agree, bookings.agree)&&
                Objects.equals(comment, bookings.comment)&&
                Objects.equals(taskCommentVoList, bookings.taskCommentVoList);
    }

    public  int hashCode(){
        return Objects.hash(bookingId, venueId, userId, bookingDate, bookingTime, bookingStatus, delFlag, flowInstantId, agree, comment, taskCommentVoList);
    }
}
